package cn.wh.beans.factory.support;

import cn.wh.beans.BeansException;
import cn.wh.beans.factory.config.BeanDefinition;

/**
 * @Author wanghao
 * @Date 2022-08-24 21:52
 * @Description: 注册bean容器 获取bean容器
 */
public interface BeanDefinitionRegistry {

     /**
      * 向注册表中注册 BeanDefinition
      *
      * @param beanName
      * @param beanDefinition
      */
     void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

     /**
      * 使用Bean名称查询BeanDefinition
      *
      * @param beanName
      * @return
      * @throws BeansException
      */
     BeanDefinition getBeanDefinition(String beanName) throws BeansException;

     /**
      * 判断是否包含指定名称的BeanDefinition
      * @param beanName
      * @return
      */
     boolean containsBeanDefinition(String beanName);

     /**
      * Return the names of all beans defined in this registry.
      *
      * 返回注册表中所有的Bean名称
      */
     String[] getBeanDefinitionNames();
}
